#ifndef UTILS_LOG_C_H
#define UTILS_LOG_C_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stdbool.h>
#include <stdint.h>

// 日志记录函数 - 使用utils_log_c.cpp中的实现
void c_log_trace(const char* file, int line, const char* func, const char* fmt, ...);
void c_log_debug(const char* file, int line, const char* func, const char* fmt, ...);
void c_log_info(const char* file, int line, const char* func, const char* fmt, ...);
void c_log_warn(const char* file, int line, const char* func, const char* fmt, ...);
void c_log_error(const char* file, int line, const char* func, const char* fmt, ...);
void c_log_critical(const char* file, int line, const char* func, const char* fmt, ...);

// 简化的宏定义 - 使用EL前缀与项目命名空间一致，支持printf风格格式化
#define EL_TRACE_C(fmt, ...) c_log_trace(__FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__)
#define EL_DEBUG_C(fmt, ...) c_log_debug(__FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__)
#define EL_INFO_C(fmt, ...)  c_log_info(__FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__)
#define EL_WARN_C(fmt, ...)  c_log_warn(__FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__)
#define EL_ERROR_C(fmt, ...) c_log_error(__FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__)
#define EL_CRITICAL_C(fmt, ...) c_log_critical(__FILE__, __LINE__, __func__, fmt, ##__VA_ARGS__)

#ifdef __cplusplus
}
#endif

#endif // UTILS_LOG_C_H